Apresentação dos dados

Nesse laboratório utilizamos dados referentes aos alunos que já concluíram o curso de Ciência da Computação - UFCG. Nele se encontram, de cada aluno, todas as médias finais obtidas em cada disciplina (5-10), assim como o coeficiente de rendimento acadêmico (cra, ~4-10).

Queremos realizar análises de regressão utilizando as disciplinas dos dois primeiros períodos e cra na tentativa de responder a seguinte pergunta:

O desempenho dos alunos nos dois primeiros períodos consegue explicar, em algum grau, seus desempenhos no curso como um todo?

Para isso, contruiremos dois modelos de regressão, um para com disciplinas do primeiro período e outro com disciplinas do segundo. Ao longo desse documento iremos responder perguntas a respeito dos modelos e realizar comparações entre eles. Logo abaixo um breve resumo de como de distribuem as variáveis quando relacionas e seus respectivos coeficientes de correlação.

graduados = read.csv("graduados_disciplinas.csv")

graduados1 = graduados[, c("matricula", "Cálculo.Diferencial.e.Integral.I",  "Álgebra.Vetorial.e.Geometria.Analítica", "Leitura.e.Produção.de.Textos", "Programação.I", "Laboratório.de.Programação.I", "Introdução.à.Computação", "cra")]

graduados2 = graduados[, c("matricula", "Cálculo.Diferencial.e.Integral.II", "Matemática.Discreta", "Programação.II", "Laboratório.de.Programação.II", "Teoria.dos.Grafos", "Fundamentos.de.Física.Clássica", "cra")]

ggpairs(graduados1[,2:8], upper = list(continuous = wrap("cor", size = 10)))

ggpairs(graduados2[,2:8], upper = list(continuous = wrap("cor", size = 10))) 

# ggcorr(graduados1[, 2:8], geom = "circle", nbreaks = 5)
# ggcorr(graduados1[, 2:8], nbreaks = 5,  label = TRUE, label_size = 3, label_round = 2, label_alpha = TRUE)

Um modelo de regressão múltipla com todas as variáveis é plausível para explicar a variação em y? Em que grau?

graduados1 = na.omit(graduados1)
graduados2 = na.omit(graduados2)

rl1 = lm(graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.I + graduados$Álgebra.Vetorial.e.Geometria.Analítica + graduados$Leitura.e.Produção.de.Textos + graduados$Programação.I + graduados$Laboratório.de.Programação.I + graduados$Introdução.à.Computação)

rl2 = lm(graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.II + graduados$Matemática.Discreta + graduados$Programação.II + graduados$Laboratório.de.Programação.II + graduados$Teoria.dos.Grafos + graduados$Fundamentos.de.Física.Clássica)

summary(rl1)
## 
## Call:
## lm(formula = graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.I + 
##     graduados$Álgebra.Vetorial.e.Geometria.Analítica + graduados$Leitura.e.Produção.de.Textos + 
##     graduados$Programação.I + graduados$Laboratório.de.Programação.I + 
##     graduados$Introdução.à.Computação)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.53290 -0.31108  0.07564  0.37949  1.31148 
## 
## Coefficients:
##                                                  Estimate Std. Error
## (Intercept)                                       0.89445    0.38666
## graduados$Cálculo.Diferencial.e.Integral.I        0.11604    0.02803
## graduados$Álgebra.Vetorial.e.Geometria.Analítica  0.12305    0.03221
## graduados$Leitura.e.Produção.de.Textos            0.11915    0.03672
## graduados$Programação.I                           0.06425    0.04076
## graduados$Laboratório.de.Programação.I            0.08620    0.04219
## graduados$Introdução.à.Computação                 0.32061    0.04853
##                                                  t value Pr(>|t|)    
## (Intercept)                                        2.313 0.021423 *  
## graduados$Cálculo.Diferencial.e.Integral.I         4.141 4.57e-05 ***
## graduados$Álgebra.Vetorial.e.Geometria.Analítica   3.821 0.000164 ***
## graduados$Leitura.e.Produção.de.Textos             3.245 0.001315 ** 
## graduados$Programação.I                            1.576 0.116054    
## graduados$Laboratório.de.Programação.I             2.043 0.041974 *  
## graduados$Introdução.à.Computação                  6.606 1.94e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5668 on 284 degrees of freedom
##   (121 observations deleted due to missingness)
## Multiple R-squared:  0.5488, Adjusted R-squared:  0.5392 
## F-statistic: 57.56 on 6 and 284 DF,  p-value: < 2.2e-16
summary(rl2)
## 
## Call:
## lm(formula = graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.II + 
##     graduados$Matemática.Discreta + graduados$Programação.II + 
##     graduados$Laboratório.de.Programação.II + graduados$Teoria.dos.Grafos + 
##     graduados$Fundamentos.de.Física.Clássica)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.59303 -0.35328  0.08232  0.34269  1.01093 
## 
## Coefficients:
##                                             Estimate Std. Error t value
## (Intercept)                                 2.101453   0.488158   4.305
## graduados$Cálculo.Diferencial.e.Integral.II 0.018291   0.048695   0.376
## graduados$Matemática.Discreta               0.266726   0.054252   4.916
## graduados$Programação.II                    0.257116   0.086630   2.968
## graduados$Laboratório.de.Programação.II     0.004893   0.056411   0.087
## graduados$Teoria.dos.Grafos                 0.129179   0.052604   2.456
## graduados$Fundamentos.de.Física.Clássica    0.039475   0.053422   0.739
##                                             Pr(>|t|)    
## (Intercept)                                 3.76e-05 ***
## graduados$Cálculo.Diferencial.e.Integral.II  0.70795    
## graduados$Matemática.Discreta               3.27e-06 ***
## graduados$Programação.II                     0.00371 ** 
## graduados$Laboratório.de.Programação.II      0.93105    
## graduados$Teoria.dos.Grafos                  0.01570 *  
## graduados$Fundamentos.de.Física.Clássica     0.46160    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5048 on 105 degrees of freedom
##   (300 observations deleted due to missingness)
## Multiple R-squared:  0.6628, Adjusted R-squared:  0.6435 
## F-statistic:  34.4 on 6 and 105 DF,  p-value: < 2.2e-16

Todas as variáveis são úteis para o modelo de regressão?

Se a resposta para a pergunta anterior foi não, construa um novo modelo sem essas variáveis e o compare ao modelo com todas as variáveis (e.g. em termos de R2 e RSE).

graduados1 = graduados[, c("matricula", "Cálculo.Diferencial.e.Integral.I",  "Álgebra.Vetorial.e.Geometria.Analítica", "Leitura.e.Produção.de.Textos", "Introdução.à.Computação", "cra")]

graduados2 = graduados[, c("matricula", "Matemática.Discreta", "Programação.II", "Teoria.dos.Grafos", "cra")]

graduados1 = na.omit(graduados1)
graduados2 = na.omit(graduados2)

rl1 = lm(graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.I + graduados$Álgebra.Vetorial.e.Geometria.Analítica + graduados$Leitura.e.Produção.de.Textos + graduados$Introdução.à.Computação)

rl2 = lm(graduados$cra ~ graduados$Matemática.Discreta + graduados$Programação.II + graduados$Teoria.dos.Grafos)

summary(rl1)
## 
## Call:
## lm(formula = graduados$cra ~ graduados$Cálculo.Diferencial.e.Integral.I + 
##     graduados$Álgebra.Vetorial.e.Geometria.Analítica + graduados$Leitura.e.Produção.de.Textos + 
##     graduados$Introdução.à.Computação)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.40554 -0.34170  0.07409  0.38615  1.59161 
## 
## Coefficients:
##                                                  Estimate Std. Error
## (Intercept)                                       1.16056    0.38608
## graduados$Cálculo.Diferencial.e.Integral.I        0.13263    0.02855
## graduados$Álgebra.Vetorial.e.Geometria.Analítica  0.13294    0.03310
## graduados$Leitura.e.Produção.de.Textos            0.13189    0.03739
## graduados$Introdução.à.Computação                 0.39201    0.04722
##                                                  t value Pr(>|t|)    
## (Intercept)                                        3.006 0.002881 ** 
## graduados$Cálculo.Diferencial.e.Integral.I         4.646 5.15e-06 ***
## graduados$Álgebra.Vetorial.e.Geometria.Analítica   4.016 7.55e-05 ***
## graduados$Leitura.e.Produção.de.Textos             3.527 0.000489 ***
## graduados$Introdução.à.Computação                  8.302 4.06e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.584 on 287 degrees of freedom
##   (120 observations deleted due to missingness)
## Multiple R-squared:  0.5214, Adjusted R-squared:  0.5147 
## F-statistic: 78.16 on 4 and 287 DF,  p-value: < 2.2e-16
summary(rl2)
## 
## Call:
## lm(formula = graduados$cra ~ graduados$Matemática.Discreta + 
##     graduados$Programação.II + graduados$Teoria.dos.Grafos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.27459 -0.28874  0.09436  0.38198  1.31152 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    2.73726    0.25866  10.583  < 2e-16 ***
## graduados$Matemática.Discreta  0.23592    0.02981   7.914 4.36e-14 ***
## graduados$Programação.II       0.20378    0.03322   6.134 2.58e-09 ***
## graduados$Teoria.dos.Grafos    0.19908    0.03201   6.219 1.60e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5873 on 313 degrees of freedom
##   (95 observations deleted due to missingness)
## Multiple R-squared:  0.5227, Adjusted R-squared:  0.5181 
## F-statistic: 114.3 on 3 and 313 DF,  p-value: < 2.2e-16

Analise os plots de resíduos de cada variável e veja se algum (um ou mais) deles indica não aleatoriedade dos erros.

Que período consegue explicar melhor o desempenho final (primeiro ou segundo)?

Use o modelo para predizer o seu próprio desempenho e compare a predição com o seu CRA atual. Comente o resultado.